home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / NEW / A-Newest / Quittner.d64 / tpug info-4 < prev    next >
Text File  |  2009-01-03  |  5KB  |  90 lines

  1. ║CM:TPUG-4
  2. ║PT5:CN1
  3. ├╧═╨╒╘┼╥ ├╧══╧─╧╥┼ 64 & ├64 ╔╬╞╧╥═┴╘╔╧╬-4:
  4. ║CM:┴S ON ╩ULY 24, 2007
  5. ║CN0:PT12
  6.      ╘O INCREMENT A BYTE MEANS ADDING 1 TO ITS VALUE. ┬YTES 160-162, PARTS OF THE JIFFY SOFTWARE CLOCK, JUST LIKE OTHER BYTES, CAN HAVE ONLY A VALUE UP TO 255, SO THAT AFTER INCREMENTING THEM WHEN THEY ARE AT 255 THE RESULT IS ZERO VALUE. ╫HEN BYTE 162 GOES TO ZERO, AFTER 256 JIFFIES (=4.267 SECONDS), BYTE 161 IS INCREMENTED; AND WHEN BYTE 161 GOES TO ZERO, AFTER 18.2044 MINUTES, THEN BYTE 160 IS INCREMENTED.
  7.      ┴ MORE CIVILIZED TIME DISPLAY OF THE JIFFY SOFTWARE CLOCK IS AVAILABLE BY USING THE 6-FIGURE TI$, WHICH PROVIDES THE TIME IN THE FORM HHMMSS; HERE IS A ┬┴╙╔├ PROGRAM TO DEMONSTRATE THIS. ┴T FIRST IT SETS TO ZERO TI$, WHICH AT THE SAME TIME SETS BYTES 160-162 TO ZERO TOO.
  8.  
  9. 10 TI$="000000"
  10. 20 ?P┼(160)P┼(161)P┼(162)TI$:G╧20
  11.  
  12.      ╘HE JIFFY SOFTWARE CLOCK IS USING THE INTERRUPT SYSTEM, PROBABLY BETTER CALLED THE PRIORITY SYSTEM. ╔T INTERRUPTS WHATEVER IS BEING DONE 60 TIMES PER SECOND. ╔T NOT ONLY THEN INCREMENTS BYTE 162, BUT ALSO INTERROGATES THE KEYBOARD INCLUDING THE STOP KEY, OPERATES THE CURSOR'S BLINKING, ETC.
  13.  
  14.      ╘HE INTERRUPT SYSTEM CAN BE USED BY ADDING IN VERY CAREFULLY ADDITIONAL PRIORITY MACHINE-LANGUAGE PROGRAMS VIA VECTORS 788/9 OR 792/3 AFTER SAVING EVERYTHING FIRST AND DISABLING THE INTERRUPT SYSTEM BEFORE CHANGING ANYTHING. ╘HE ADDITIONAL PROGRAMS MUST, AT THEIR END, RESTORE THE INTERRUPT SYSTEM; ALSO SAVED VALUES OF .┴, .╪, AND .┘ MAY HAVE TO BE PULLED BACK FROM THE STACK, WHICH IS THE AREA RESERVED FOR TEMPORARY PARKING. ╔F SOMETHING IS DONE WRONG, THE COMPUTER MAY HANG UP, AND USUALLY CAN THEN BE RESTORED TO NORMAL ONLY BY SWITCHING IT OFF, LOSING CONTENTS OF MEMORY. ╬OTE THAT ADDING ADDITIONAL PROGRAMS INTO THE INTERRUPT SYSTEM WILL SLOW DOWN THE JIFFY SOFTWARE CLOCK; USE OF THE TAPE RECORDER WILL DO THAT TOO. ╘HE ALARM CLOCKS ARE NOT SLOWED DOWN BY ANYTHING.
  15.  
  16.      ╘WO ALARM CLOCKS, READING UP TO 12:59:59.9, AM OR PM, ARE AVAILABLE; IF THE ALARMS ARE USED, THEY COULD, IF DESIRED, TRIGGER THE INTERRUPT SYSTEM IN ADDITION TO ONLY JUST SETTING A BIT (A "FLAG") IN ONE BYTE.
  17.  
  18.      ╘HIS ┬┴╙╔├ PROGRAM, WITHOUT USING THE INTERRUPT OPTION, CHANGES THE COLOUR OF THE SCREEN FRAME AT ALARM TIME. ╘HE LINE NUMBERS ARE NOT BELOW 40000 TO ENABLE YOU TO ADD/MERGE ONE OR MORE PROGRAMS WITHOUT LINE NUMBER DUPLICATION; BUT CHECK THAT THERE IS NO DUPLICATION OF VARIABLE NAMES, NOR ANY OTHER DUPLICATION. ─URING TYPING BE SURE TO DISTINGUISH BETWEEN 1 AND L, ALSO BETWEEN ╧ AND 0. ╘O LIST THE PROGRAM ON THE SCREEN TYPE LIST OR L╔
  19.  
  20. 10:REM" ┴DD SOME OTHER PROGRAM(S) HERE?
  21. 40000REM" ┴LARM ├LOCK BY ╩OE ╤UITTNER
  22. 40010 ?C╚(14)C╚(144)
  23. 40099:
  24. 40100 REM" ═AIN
  25. 40101 IF ZA=0 T╚ GO╙40110
  26. 40102 G╧41100
  27. 40110:ZA=1:?" ╙ET CLOCK TIME (Y/N)? ";:GO╙40997:?G$
  28. 40111 IF G$="Y" T╚ GO╙41000
  29. 40120:?" ╙ET ALARM TIME (Y/N)? ";:GO╙40997:?G$
  30. 40121 IF G$="Y" T╚ GO╙41200
  31. 40122 RE╘
  32. 40199:
  33. 40997:P╧204,0:GETG$:IFG$="" T╚ 40997
  34. 40998:IF P┼(207) T╚ 40998
  35. 40999 P╧204,1:RE╘
  36. 41000:REM" ╙ET ├LOCK ╘IME
  37. 41002 P╧56591,(P┼(56591) AND 127)
  38. 41003:INPUT" H,M,S";H$,M$,S$
  39. 41004:INPUT" ┴═(A) OR ╨═(P)";A$
  40. 41006 H=0:IF LEN(H$) > 1 T╚ H=16
  41. 41008 H=H+VAL(RIGHT$(H$,1))
  42. 41012 IF A$="A" T╚ 41016
  43. 41013 IF A$="P" T╚ H=H+128:G╧41016
  44. 41014 G╧41004
  45. 41016:P╧56587,H:M=0:IF LEN(M$) > 1 T╚ M=16*VAL(LEFT$(M$,1))
  46. 41018 M=M+VAL(RIGHT$(M$,1)):P╧56586,M
  47. 41020 S=0:IF LEN(S$) > 1 T╚ S=16*VAL(LEFT$(S$,1))
  48. 41022 S=S+VAL(RIGHT$(S$,1)):P╧56585,S
  49. 41024 P╧56584,0:REM STARTS CLOCK
  50. 41026 RE╘
  51. 41099:
  52. 41100:REM" ╙HOW ├LOCK ╘IME
  53. 41110 H=P┼(56587): IF (H AND 16)=0 T╚ P╧1091,32
  54. 41111 IF (H AND 16) T╚ P╧1091,49
  55. 41112 H1=H AND 15:P╧1092,(H1+48)
  56. 41114 P╧1093,58
  57. 41116 M=P┼(56586):P╧1094,((M AND 240)/16+48):P╧1095,((M AND 15)+48)
  58. 41118 P╧1096,58
  59. 41120 S=P┼(56585):P╧1097,((S AND 240)/16+48):P╧1098,((S AND 15)+48)
  60. 41122 P╧1099,46
  61. 41124 T=P┼(56584):P╧1100,((T AND 15)+48)
  62. 41126 P╧1101,32
  63. 41128 IF (H AND 128) T╚ P╧1102,16:G╧41132
  64. 41130 P╧1102,1
  65. 41132:P╧1103,13:IFZC=0 T╚ GO╙41300
  66. 41134 G╧41100:REM OR GO TO ANOTHER PROGRAM FIRST?
  67. 41199:
  68. 41200:REM" ╙ET ┴LARM ╘IME
  69. 41210 CC=P┼(53280):REM FRAME COLOUR
  70. 41212 ZC=0:REM ENABLE ALARM
  71. 41220 P╧56591,(P┼(56591) OR 128):G=P┼(56589) AND 4: G╧41003
  72. 41299:
  73. 41300:REM" ╒SE ┴LARM
  74. 41310 IF ZB T╚ 41322
  75. 41312 IF (P┼(56589) AND 4) <> 4 T╚ RE╘
  76. 41320 P╧53280,2:ZB=1:REM ALARM COLOUR
  77. 41322:IF P┼(197) <> 3 T╚ RE╘:REM" ╘O RESTORE FRAME COLOUR PRESS ╞7
  78. 41324 P╧53280,CC:ZC=1:RE╘
  79.  
  80.      ╘HE SECOND ALARM CLOCK USES DIFFERENT MEMORY LOCATIONS [╘HE ALARM ON MINE DOESN'T WORK - A HARDWARE PROBLEM?]:
  81.      ╔NSTEAD OF 56584-->USE 56328, 56585-->56329, 56586-->56330, 56587-->56331, 56589-->56333, 56591-->56335.
  82.  
  83.      ╔NTERVAL TIMERS ARE ALSO AVAILABLE, COUNTING DOWN TO ZERO FROM ANY NUMBER SET BETWEEN 0 TO 65535. ╔T IS POSSIBLE TO COMBINE TWO TIMERS SO AS TO COUNT UP TO ABOUT 70 MINUTES AT 1/15 SECONDS' ACCURACY.
  84.  
  85. ║PT20
  86. ║CN1
  87.    ┬Y ╩OE ╤UITTNER, ╘╨╒╟, ╙EPTEMBER 20, 2007
  88. ║CN0
  89. ║FP
  90.